package leetcode_day._2021._202111;

/**
 * @author yzh
 * @version 1.0
 * @date 2021/11/4 9:37
 * 有效的完全平方数
 * 给定一个 正整数 num ，编写一个函数，如果 num 是一个完全平方数，则返回 true ，否则返回 false
 * 算法：二分查找
 */
public class _04_367 {
    public static void main(String[] args) {
        System.out.println(new _04_367().isPerfectSquare(14));
    }

    public boolean isPerfectSquare(int num) {
        long l = 0, r = num;
        while (l < r) {
            long mid = l + r + 1 >> 1;
            if (mid * mid > num) r = mid - 1;
            else l = mid;
        }
        return l * l == num;
    }

}
